#!/bin/bash

# 检查环境变量是否存在
if [ -z "$OPENAI_API_KEY" ]; then
    echo "错误: 未找到 OPENAI_API_KEY 环境变量"
    echo "请使用 -e OPENAI_API_KEY=your_key 参数运行容器"
    exit 1
fi

# 检查代码是否已存在，如果不存在则克隆
if [ ! -f "main.py" ]; then
    echo "正在从开源仓库克隆最新代码..."
    # 备份当前的启动脚本
    cp docker-entrypoint.sh /tmp/docker-entrypoint.sh.backup
    
    # 克隆到临时目录然后移动文件
    git clone https://gitee.com/huweinan/chatbot.git /tmp/chatbot
    # 移动所有文件到当前目录
    mv /tmp/chatbot/* .
    # 移动隐藏文件（如果有的话）
    mv /tmp/chatbot/.* . 2>/dev/null || true
    # 清理临时目录
    rm -rf /tmp/chatbot
    
    # 恢复启动脚本（避免被覆盖）
    mv /tmp/docker-entrypoint.sh.backup docker-entrypoint.sh
    echo "代码克隆完成"
    
    # 安装Python依赖（支持自定义源）
    echo "正在安装Python依赖..."
    
    # 检查是否指定了自定义Python源
    if [ -n "$PIP_INDEX_URL" ]; then
        echo "使用自定义Python源: $PIP_INDEX_URL"
        if [ -n "$PIP_TRUSTED_HOST" ]; then
            pip install --no-cache-dir -r requirements.txt -i "$PIP_INDEX_URL" --trusted-host "$PIP_TRUSTED_HOST"
        else
            pip install --no-cache-dir -r requirements.txt -i "$PIP_INDEX_URL"
        fi
    else
        echo "使用官方Python源"
        pip install --no-cache-dir -r requirements.txt
    fi
    
    echo "依赖安装完成"
fi

# 创建必要的目录
mkdir -p temp static

# 将环境变量写入.env文件
echo "正在创建 .env 文件..."
cat > .env << EOF
OPENAI_API_KEY=${OPENAI_API_KEY}
OPENAI_BASE_URL=${OPENAI_BASE_URL:-https://api.openai.com/v1}
MODEL_NAME=${MODEL_NAME:-gpt-3.5-turbo}
MAX_TOKENS=${MAX_TOKENS:-4096}
EOF

# 验证文件是否创建成功
if [ -f ".env" ]; then
    echo ".env 文件创建成功"
    echo "配置内容:"
    cat .env
else
    echo "错误: .env 文件创建失败"
    exit 1
fi

# 启动应用
echo "启动应用..."
exec python ./main.py